package com.wyy.uploadanddownload;

/*
 * 上传和下载图片的代码
 */
public class UploadAndDownloadPictureService {
//    private static final Logger  LOGGER = LoggerFactory.getLogger(PersonalCenterService.class);
//    @Autowired
//    public RegisterInfoRepository registerInfoRepository;
//    
//	/**
//	 * 极光推送masterSecret
//	 */
//	@Value("${nfs.rootPath}")
//	private String nfsRootPath;
//    
//    /**
//     * ftp上传图片
//     */
//	@Transactional(rollbackFor = { Exception.class, RuntimeException.class })
//	public void uploadPicture(Map<String, Object> paramMap) throws BusinessException{
//		String imgStr = CommonUtils.getValue(paramMap, "imgFile");
//		String imgtype = CommonUtils.getValue(paramMap, "imgType");
//		String customerid = CommonUtils.getValue(paramMap, ParamsCode.CUSTOMER_ID);
//		byte[] img = Base64Utils.decodeFromString(imgStr);
//		// 获取图片的文件名
//		String fileName = customerid + "_" + imgtype + ".jpg";
//		
//		FileOutputStream os = null;
//        // 输出的文件流保存到本地文件
//        File tempFile = new File(nfsRootPath+"/identity/"+customerid);
//        //先判断保存文件的目录是否存在
//        if (!tempFile.exists()) {
//            tempFile.mkdirs();
//            LOGGER.info("创建目录："+tempFile);
//        }
//
//		try {
//			String fileStr=tempFile.getPath() + File.separator+fileName;
//			File f = new File(fileStr);
//			//再判断要保存的文件是否存在
//	        if (!f.exists()) {
//	            try {
//	                f.createNewFile();
//	                LOGGER.info("创建文件："+fileStr);
//	            } catch (IOException e) {
//	            	LOGGER.error("创建要上传的图片发生异常，文件名称为："+fileStr);
//	                throw new BusinessException("创建要上传的图片发生异", e);
//	            }
//	        }
//	        os = new FileOutputStream(f);
//	        // 开始写入文件
//	        os.write(img);
//		} catch (Exception e) {
//        	LOGGER.error("向图片文件中写入数据发生异常");
//            throw new BusinessException("向图片文件中写入数据发生异常", e);
//		}finally{
//            // 完毕，关闭所有链接
//            try {
//                os.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//		}
//	}
//	
//	
//	/**
//     * ftp下载图片
//     */
//    public String downloadPicture(Map<String, Object> paramMap) throws BusinessException {
//    	String base64Str="";
//    	byte[] cardByte;
//        try {
//            String imgtype = CommonUtils.getValue(paramMap, "imgType");
//            String customerId = CommonUtils.getValue(paramMap, ParamsCode.CUSTOMER_ID);
//            String imageSrc = "/identity/" + customerId + "/" + customerId + "_" + imgtype + ".jpg";
//            cardByte = readFileToByteArray(nfsRootPath+imageSrc);
//            base64Str=imageToBase64(cardByte);
//        } catch (Exception e) {
//            String imgtype = CommonUtils.getValue(paramMap, "imgType");
//            String customerId = CommonUtils.getValue(paramMap, ParamsCode.CUSTOMER_ID);
//            String imageSrc = "/identity/" + customerId + "/" + customerId + "_" + imgtype + ".jpg";
//			try {
//				cardByte = readFileToByteArray(nfsRootPath+imageSrc);
//				base64Str=imageToBase64(cardByte);
//	            LOGGER.error("第一次下载失败，再次下载");
//			} catch (IOException e1) {
//				// TODO Auto-generated catch block
//				e1.printStackTrace();
//				LOGGER.error("第一次下载失败，再次下载也失败");
//				throw new BusinessException("在此下载图片文件失败",e1);
//			}
//        }        
//		return base64Str;
//    }
//    
//    /**
//     * ftp读取图片流
//     */
//    public byte[] readFTPPic(Map<String, Object> paramMap) throws BusinessException {
//        //读取本地图片用于进行解析
//        byte[] cardByte=null;
//        try {
//            String imgtype = CommonUtils.getValue(paramMap, "imgType");
//            String customerId = CommonUtils.getValue(paramMap, ParamsCode.CUSTOMER_ID);
//            
//            String imageSrc = "/identity/" + customerId + "/" + customerId + "_" + imgtype + ".jpg";
//            //读取本地图片用于进行解析
//            cardByte = readFileToByteArray(nfsRootPath+imageSrc);
//        } catch (Exception e) {
//            String imgtype = CommonUtils.getValue(paramMap, "imgType");
//            String customerId = CommonUtils.getValue(paramMap, ParamsCode.CUSTOMER_ID);
//            String imageSrc = "/identity/" + customerId + "/" + customerId + "_" + imgtype + ".jpg";
//			try {
//				cardByte = readFileToByteArray(nfsRootPath+imageSrc);
//	            LOGGER.info("第一次下载失败，再次下载");
//			} catch (IOException e1) {
//				// TODO Auto-generated catch block
//				LOGGER.error("第二次下载失败");
//				throw new BusinessException("读取图片文件失败",e1);
//			}
//        }
//		return cardByte;
//    }
//    
//    
//    /**
//     * 图片转base64
//     * 
//     * @param fileName
//     * @return
//     */
//    public static String imageToBase64(byte[] content) throws BusinessException {
//        String imageEncoded = "";
//        try {
//            imageEncoded = new String(Base64.encode(content));
//        } catch (Exception e) {
//            LOGGER.error("图片转base64操作发生错误===》", e);
//            throw new BusinessException("图片转base64操作发生错误===》", e);
//        }
//        return imageEncoded;
//    }
//    
//    
//    /**
//     * 注册经纪人
//     * @throws BusinessException 
//     */
//    @Transactional(rollbackFor = { Exception.class, RuntimeException.class })
//    public long registerdBroker(RegisterInfoEntity registerInfo) throws BusinessException {
//        try {
//            // 1. 使用加密盐加密
//            String salt = SaltEncodeUtils.generateDefaultSalt();
//            String password = registerInfo.getPassword();
//            // 2. 加密后的密码
//            String newPassword = SaltEncodeUtils.sha1(password, salt);
//            registerInfo.setPassword(newPassword);
//            registerInfo.setSalt(salt);
//            // 3. 保存注册信息
//            registerInfoRepository.insert(registerInfo);
//            return registerInfo.getId();
//        } catch (Exception e) {
//            LOGGER.error("保存客户注册信息出错===》", e);
//            throw new BusinessException("保存客户注册信息出错===》", e);
//        }
//    }
//    
//    /** 
//     *  
//     * @param filename 
//     * @return 
//     * @throws IOException 
//     */    
//    public byte[] readFileToByteArray(String filename) throws IOException {
//
//		File f = new File(filename);
//		if (!f.exists()) {
//			throw new FileNotFoundException(filename);
//		}
//
//		ByteArrayOutputStream bos = new ByteArrayOutputStream((int) f.length());
//		BufferedInputStream in = null;
//		try {
//			in = new BufferedInputStream(new FileInputStream(f));
//			int buf_size = 1024;
//			byte[] buffer = new byte[buf_size];
//			int len = 0;
//			while (-1 != (len = in.read(buffer, 0, buf_size))) {
//				bos.write(buffer, 0, len);
//			}
//			return bos.toByteArray();
//		} catch (IOException e) {
//			e.printStackTrace();
//			throw e;
//		} finally {
//			try {
//				in.close();
//			} catch (IOException e) {
//				e.printStackTrace();
//			}
//			bos.close();
//		}
//	}
}
